package com.dayou.service.impl;

import java.util.List;

import com.dayou.common.exception.BusinessException;
import com.dayou.common.utils.StringUtils;
import com.dayou.utils.UserUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.dayou.mapper.SysMenuMapper;
import com.dayou.bean.SysMenu;
import com.dayou.service.ISysMenuService;
import com.dayou.common.core.text.Convert;

/**
 * 达幽系统集成框架 - 菜单 服务层实现
 * 
 * @author dayou
 * @date 2020-04-24
 */
@Service
public class SysMenuService implements ISysMenuService
{
	@Autowired
	private SysMenuMapper sysMenuMapper;

	/**
     * 查询达幽系统集成框架 - 菜单信息
     * 
     * @param id 达幽系统集成框架 - 菜单ID
     * @return 达幽系统集成框架 - 菜单信息
     */
    @Override
	public SysMenu selectSysMenuById(Integer id)
	{
	    return sysMenuMapper.selectSysMenuById(id);
	}
	
	/**
     * 查询达幽系统集成框架 - 菜单列表
     * 
     * @param sysMenu 达幽系统集成框架 - 菜单信息
     * @return 达幽系统集成框架 - 菜单集合
     */
	@Override
	public List<SysMenu> selectSysMenuList(SysMenu sysMenu)
	{
	    return sysMenuMapper.selectSysMenuList(sysMenu);
	}
	
    /**
     * 新增达幽系统集成框架 - 菜单
     * 
     * @param sysMenu 达幽系统集成框架 - 菜单信息
     * @return 结果
     */
	@Override
	public int insertSysMenu(SysMenu sysMenu)
	{
		sysMenu.setCreateBy(UserUtil.getUser().getId());
	    return sysMenuMapper.insertSysMenu(sysMenu);
	}
	
	/**
     * 修改达幽系统集成框架 - 菜单
     * 
     * @param sysMenu 达幽系统集成框架 - 菜单信息
     * @return 结果
     */
	@Override
	public int updateSysMenu(SysMenu sysMenu)
	{
		sysMenu.setUpdateBy(UserUtil.getUser().getId());
	    return sysMenuMapper.updateSysMenu(sysMenu);
	}

	/**
	 * 伪删除达幽系统集成框架 - 菜单
	 *
	 * @param ids 需要删除的数据ID
	 * @return 结果
	 */
    @Override
    public int fakeDeleteSysMenuByIds(String ids)
	{
        long userId = UserUtil.getUser().getId();
        if(StringUtils.isEmpty(ids)){
            throw new BusinessException("未获取到id");
        }else{
            String[] idsArr = Convert.toStrArray(ids);
            if(idsArr.length == 1){
                try{
                    Integer id = Integer.parseInt(idsArr[0]);
                    return sysMenuMapper.fakeDeleteSysMenuById(id,userId);
                }catch (Exception ex){
                    throw new BusinessException("id有误");
                }
            }else{
                return sysMenuMapper.fakeDeleteSysMenuByIds(idsArr,userId);
            }
        }
    }

	/**
	 * 恢复达幽系统集成框架 - 菜单
	 *
	 * @param ids 需要恢复的数据ID
	 * @return 结果
	 */
    public int resumeSysMenuByIds(String ids)
	{
        if(StringUtils.isEmpty(ids)){
            throw new BusinessException("未获取到id");
        }else{
            String[] idsArr = Convert.toStrArray(ids);
            if(idsArr.length == 1){
                try{
                    Integer id = Integer.parseInt(idsArr[0]);
                    return sysMenuMapper.resumeSysMenuById(id);
                }catch (Exception ex){
                    throw new BusinessException("id有误");
                }
            }else{
                return sysMenuMapper.resumeSysMenuByIds(idsArr);
            }
        }
    }
	/**
     * 删除达幽系统集成框架 - 菜单对象
     * 
     * @param ids 需要删除的数据ID
     * @return 结果
     */
	@Override
	public int deleteSysMenuByIds(String ids)
	{
	    if(StringUtils.isEmpty(ids)){
	        throw new BusinessException("未获取到id");
		}else{
	        String[] idsArr = Convert.toStrArray(ids);
	        if(idsArr.length == 1){
                try{
                    Integer id = Integer.parseInt(idsArr[0]);
                    return sysMenuMapper.deleteSysMenuById(id);
				}catch (Exception ex){
	                throw new BusinessException("id有误");
				}
			}else{
                return sysMenuMapper.deleteSysMenuByIds(idsArr);
            }
		}
	}
}
